#pragma once

#include <list>
#include <map>
#include "EnginePointer.h"
#include "EngineEntity.h"
#include "ISerializable.h"

class EngineEntityCollection : public list<EnginePointer<EngineEntity>>, public ISerializable
{
public:
	EngineEntityCollection(void);
	~EngineEntityCollection(void);

	void Serialize(EnginePointer<ISerializerWriteContext>& context, char* name);
	static EngineEntityCollection* Deserialize(EnginePointer<ISerializerReadContext>& context);
	
	AUTO_SIZE;
};
